package br.com.lopes.gci.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * Endereco entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "endereco", catalog = "gcibd")
public class Endereco implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 2677647171175697018L;
	// Fields
	@Id
	@Column(name = "codigo", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private Integer codigo;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "tipo")
	private Dominio tipo;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "tipo_origem")
	private Dominio tipoOrigem;
	
	@Column(name = "cep", length = 8)
	private String cep;
	
	@Column(name = "logradouro", length = 100)
	private String logradouro;
	
	@Column(name = "complemento", length = 20)
	private String complemento;
	
	@Column(name = "bairro", length = 30)
	private String bairro;
	
	@Column(name = "estado", length = 30)
	private String estado;
	
	@Column(name = "codigo_origem")
	private Integer codigoOrigem;
	
	@Column(name = "cidade", length = 30)
	private String cidade;
	
	// Constructors

	/** default constructor */
	public Endereco() {
	}

	/** minimal constructor */
	public Endereco(Integer codigo) {
		this.codigo = codigo;
	}

	/** full constructor */
	public Endereco(Integer codigo, Dominio tipo,
			Dominio tipoOrigem, String cep, String logradouro,
			String complemento, String bairro, String estado,
			Integer codigoOrigem, String cidade) {
		this.codigo = codigo;
		this.tipo = tipo;
		this.tipoOrigem = tipoOrigem;
		this.cep = cep;
		this.logradouro = logradouro;
		this.complemento = complemento;
		this.bairro = bairro;
		this.estado = estado;
		this.codigoOrigem = codigoOrigem;
		this.cidade = cidade;
		
	}

	/**
	 * @return the codigo
	 */
	public Integer getCodigo() {
		return codigo;
	}

	/**
	 * @return the tipo
	 */
	public Dominio getTipo() {
		return tipo;
	}

	/**
	 * @return the tipoOrigem
	 */
	public Dominio getTipoOrigem() {
		return tipoOrigem;
	}

	/**
	 * @return the cep
	 */
	public String getCep() {
		return cep;
	}

	/**
	 * @return the logradouro
	 */
	public String getLogradouro() {
		return logradouro;
	}

	/**
	 * @return the complemento
	 */
	public String getComplemento() {
		return complemento;
	}

	/**
	 * @return the bairro
	 */
	public String getBairro() {
		return bairro;
	}

	/**
	 * @return the estado
	 */
	public String getEstado() {
		return estado;
	}

	/**
	 * @return the codigoOrigem
	 */
	public Integer getCodigoOrigem() {
		return codigoOrigem;
	}

	/**
	 * @return the cidade
	 */
	public String getCidade() {
		return cidade;
	}

	

	/**
	 * @param codigo the codigo to set
	 */
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	/**
	 * @param tipo the tipo to set
	 */
	public void setTipo(Dominio tipo) {
		this.tipo = tipo;
	}

	/**
	 * @param tipoOrigem the tipoOrigem to set
	 */
	public void setTipoOrigem(Dominio tipoOrigem) {
		this.tipoOrigem = tipoOrigem;
	}

	/**
	 * @param cep the cep to set
	 */
	public void setCep(String cep) {
		this.cep = cep;
	}

	/**
	 * @param logradouro the logradouro to set
	 */
	public void setLogradouro(String logradouro) {
		this.logradouro = logradouro;
	}

	/**
	 * @param complemento the complemento to set
	 */
	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	/**
	 * @param bairro the bairro to set
	 */
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	/**
	 * @param estado the estado to set
	 */
	public void setEstado(String estado) {
		this.estado = estado;
	}

	/**
	 * @param codigoOrigem the codigoOrigem to set
	 */
	public void setCodigoOrigem(Integer codigoOrigem) {
		this.codigoOrigem = codigoOrigem;
	}

	/**
	 * @param cidade the cidade to set
	 */
	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

}